EC2 インスタンスキャパシティーの予約をしたのに、キャパシティー不足のエラーが出るときの対処方法
困っていた内容
EC2 インスタンスキャパシティーの予約をしたのに、インスタンスを起動しようとするとキャパシティー不足のエラーが出ます。
We currently do not have sufficient t3.medium capacity in the Availability Zone you requested (ap-northeast-1c). Our system will be working on provisioning additional capacity. You can currently get t3.medium capacity by not specifying an Availability Zone in your request or choosing ap-northeast-1d, ap-northeast-1a.
どうすればキャパシティー予約を使用した EC2 インスタンスが起動できるようになりますか?
どう対応すればいいの?
まずは EC2 コンソールの [キャパシティーの予約] を確認してください。
キャパシティーの予約作成時に [インスタンスの利用資格] 項目で [一致する詳細を持つ任意のインスタンス] を選択していた場合、[適格性] の列が open
と表示されます。
適格性が open
ですと、条件の合致するインスタンスが存在すれば、キャパシティーが自動で割り当てられます。そのため、起動したいインスタンスを対象に手動でキャパシティーを割り当てることができません。
急ぎの場合は条件の合致するインスタンスを停止し、[利用可能な数量] 列の数値を「N 次のうち: X」(N, X は 1 以上の自然数)として、利用可能なキャパシティーの余剰を作る必要があります。適格性 open
のキャパシティー予約を使用しているインスタンスを停止すると、自動でキャパシティー予約が外れます。
キャパシティーの余剰が作れない環境では、別のインスタンスタイプを指定するか、起動する AZ を変えることを検討してください。
適格性の列が targeted
と表示される場合は、以下のとおり EC2 インスタンスの起動時にキャパシティーの予約で任意の ID を指定できます。
条件の合致する任意のキャパシティー予約 ID を指定して起動してください。
EC2 インスタンスの新規作成画面
インスタンスの利用資格とは?
インスタンスの利用資格は EC2 インスタンスキャパシティーの予約を自動で割り当てるか、手動で割り当てるかを設定する項目です。
2021/02 時点の AWS ドキュメントでは、利用資格(instance-match-criteria)について以下のとおり記載されています。
- [open (開く)] — (デフォルト) キャパシティーの予約 は、一致する属性 (インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーン) を持つインスタンスに一致します。一致する属性を持つインスタンスを起動すると、そのインスタンスはリザーブドキャパシティーに自動的に配置されます。
- [targeted (指定済み)] — キャパシティーの予約は、一致する属性 (インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーン) を持つインスタンスのみを受け入れ、明示的に予約を行います。
コンソールでは、以下のように表示されます。
- 一致する詳細を持つ任意のインスタンス
インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーンは、この予約で指定されたものと一致する必要があります。 - この予約を指定するインスタンスのみを受け入れます。
インスタンスを起動するときは、この予約に関連付けられた予約 ID または予約リソースグループ ARN を指定する必要があります。
なお、コンソールのデフォルトでは「一致する詳細を持つ任意のインスタンス」(Open)が選択されています。すでに予約条件の合致するインスタンスが起動されている場合は、キャパシティー予約の作成後、即座にインスタンスへキャパシティーの予約が割り当てられます。